package com.luoqian.demo03;

import java.util.ArrayList;
import java.util.List;

/**
 * 上边界通配符
 * < ? extends Number > 代表从Number往下的子类货孙类对象都可以使用
 */
public class UpperBoundary {
    public static void main(String[] args) {
        List<Number> list2 = new ArrayList<>();
        list2.add(1);
        list2.add(2);
        list2.add(3);
        loop(list2);
        System.out.println("====");
        List<Double> list3 = new ArrayList<>();
        list3.add(1.0d);
        list3.add(1.0d);
        list3.add(1.0d);
        loop(list3);
    }
    /**
     *  ?  extends Number
     *  通用的类型必须是Number及其子类
     * @param list
     */
    public static void loop(List<? extends Number> list){
        for (int i = 0; i < list.size() ; i++) {
            System.out.println(list.get(i));
        }
    }
}
